Skip to content

バーコードデータの公開、印刷用の実寸出力、代表郵便番号の判定を追加 - #8

Merged
cssho merged 1 commit into
masterfrom
barcode-features
Nov 5, 2026
Merged

cssho merged 1 commit into
masterfrom
barcode-features

Conversation

@cssho

@cssho cssho commented Nov 5, 2026

Copy link
Copy Markdown
Owner

概要

3 つの機能を追加しました。

1. バーコードデータの公開

CustomerBarCode に次のプロパティを追加しました。

  • ZipCode: ハイフンなしの半角 7 桁(例:"1000013")。
  • AddressNumber: マニュアルの「バーコード・データ」にあたる住所表示番号(例:"3-20-5B604")。

AddressNumber は 13 けたで切り捨てる前の値です。表示用に情報を残すためで、バーコードに含まれるのは先頭 13 けた分です。

この機能のために、生成処理を「住所表示番号の抜き出し」と「シンボル列の組み立て」に分けました。出力は変わっていません(既存テストで確認済み)。

2. 印刷用の実寸出力

マニュアル p12 の寸法で出力します。10 ポイントのとき、バー幅 0.6mm、バーピッチ 1.2mm、ロングバー 3.6mm です。大きさは 8〜11.5 ポイントで指定でき、省略時は 10 ポイントです。

追加した API 場所 内容
GetPrintWidth() / GetPrintHeight() / GetPrintBars() コア mm 単位のサイズとバー配置
ToPrintSvg(point, margin) コア mm 単位の SVG。余白は p13 の「2mm 以上の空白」に合わせて省略時 2mm
Draw(Graphics, x, y) System.Drawing 版 宛名印刷(PrintDocument など)で、用紙の指定位置(mm)に描画する。呼び出し側の PageUnit は描画後に元に戻す
Draw(SKCanvas, x, y, 1mmあたりの単位数) SkiaSharp 版 PDF などに描画する。PDF 用の定数 PdfUnitsPerMillimeter も追加

3. 代表郵便番号の判定

IsRepresentativeZipCode を追加しました。マニュアル p18 では、代表の郵便番号の郵便物にはカスタマバーコードを付けないことになっています。

判定はマニュアルの「原則として下 2 けたが 00」に従った目安です。例外にはせず、プロパティで知らせるだけにしています。正確な判定は、次の PR で KEN_ALL(郵便番号データ)を利用者側から渡せるようにして対応する予定です。

テスト

  • dotnet test で 134 件すべて成功(25 件追加)。
  • 印刷の寸法: バー 67 本の位置・幅・高さが規格どおりであることと、範囲外のポイントや負の余白で例外になることを確認。
  • 実寸描画: 1mm = 10px の画像に描いて、各バーの位置と形を点で確認。System.Drawing 版は PageUnit が Pixel / Inch の両方で確認。わざと描画を壊すと失敗することも確認済み。
  • PDF 出力: PDF に描画できることを確認。
  • 実際に印刷して長さを測る確認はしていない。

🤖 Generated with Claude Code

https://claude.ai/code/session_01HNb8H3ydQTR8dWU8d28osE

- ZipCode / AddressNumber プロパティを追加(AddressNumber はマニュアルの「バーコード・データ」)
- マニュアル p12 の寸法で、mm 単位のバー配置(GetPrintBars)と SVG(ToPrintSvg)を出力
- System.Drawing 版と SkiaSharp 版に、実寸で描画する Draw を追加
- 代表の郵便番号かどうか(下2けたが00)を IsRepresentativeZipCode で判定
- README に使い方を追記

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HNb8H3ydQTR8dWU8d28osE
@cssho
cssho merged commit ebd41b5 into master Nov 5, 2026
@cssho
cssho deleted the barcode-features branch November 5, 2026 12:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant